package com.cheng.example.book.advise151.chap1;

import static java.lang.Math.PI;
import static java.lang.Math.abs;

/**
 * 建议10：不要在本类中覆盖静态导入的变量和方法
 *
 *
 */
public class Client10 {
    // 常量名于静态导入的PI相同
    public final static String PI = "祖冲之";
    //方法名于静态导入的方法相同
    public static int abs(int abs) {
        return 0;
    }

    public static void main(String[] args) {
        System.out.println("PI = "+PI);
        System.out.println("abs(-100) = "+abs(-100));
    }
}


/**
 * 静态方法不能被覆盖。
 * 但是子类可以重新定义父类的静态方法，并将父类的静态方法屏蔽掉。
 */
class StaticParent {

    public static int a = 0;
    public static void printA() {
        System.out.println("In Parent, a = " + a);
    }
}

class StaticSon extends StaticParent {
    public static void main(String[] args) {

        printA();
    }

    //覆盖会报错，这个就说明了，静态方法不能被覆盖
//    @Override
    public static void printA() {
        System.out.println("In son a = " + a);
    }
}
